Online, real-time game playing with serving of pages of information to a multitude of players

ABSTRACT

A central gaming server transmits game lobby pages to a multitude of distributed computing devices accessing a gaming website or websites over a network such as the Internet. To overcome scalability problems in keeping the lobby displays up-to-date and accurate in all the participating distributed workstations, particularly in a dynamic gaming environment where hundreds or thousands of games may be going on simultaneously, game or player data in the lobby displays is transmitted as individual pages along with icons by which the users of the computing devices can request additional pages. Updates are performed for only the displayed pages. This approach provides a significant improvement in server and network performance over prior techniques in which all game statistics for a particular selected type of game (or statistics on all the current players) was sent to each workstation and the workstation would scroll through the entire data set as necessary to view all the game or player data.

CROSS-REFERENCE TO RELATED APPLICATIONS

Not applicable.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

BACKGROUND

This disclosure relates generally to methods and systems for providing online, real-time game playing over computer networks such as the Internet. More particularly, this disclosure relates to methods of presenting up-to-date, game-related information to a multitude of players in a scalable manner. Aspects of this invention allow a gaming server coordinating a multitude of online game playing to provide real time game information simultaneously to a larger number of game players (e.g., many thousands of such players) in a more efficient manner than previously known.

A system and method for playing games, such as card games, over a computer network is described in published PCT application WO 03/093921 A2, published Nov. 13, 2003, which is assigned to the assignee of the present invention. The entire contents of WO 03/093921 A2 are incorporated by reference herein. The system of the '921 PCT publication includes a central gaming server accessible over the Internet and enables participation in games such as poker games by individuals accessing diverse portal websites (gaming websites).

In the last several years, systems have been commercialized such as described in the '921 patent publication wherein a gaming website provides a facility for online game playing, particularly online poker playing. Such systems have become quite popular and gaming sites may host hundreds, even thousands of players at a time. In online poker, the success of an online poker web site (“online poker room”) is directly related to the magnitude of a pool of would-be players who desire to play a game of online poker. Simply put, the larger the pool of players, the more virtual poker tables (i.e. poker games each accommodating a maximum of, say, 10 players) the online poker software can spawn, thereby increasing the overall liquidity of the online poker room and increasing its attractiveness to other would-be players.

In order to maximize this size advantage, some online poker rooms operate under a centralized topology, in which there is a single operating entity (“operator”) that owns and runs the gaming web site and the player pool is homogeneous (i.e. all players are registered with, or “belong to”, this single operator). The operator makes its money by charging a proportion (a “rake”) of the collective wagers (“the pot”) of all players participating in each game of poker that is played in the online poker room. Under a centralized topology, a player will always be playing only with other players who are registered with the same (i.e. the only) operator. Settlement of player wagers is straightforward: 1) the operator deducts it's rake from the pot; 2) the balance is paid over to the player that has won the game; and 3) the next game starts and the process repeats.

Other online poker rooms may operate under a distributed topology (also referred to, in the art, as a network topology). Under this topology, the player pool is heterogeneous, as players registered with different operators are pooled together to maximize liquidity of the collective player pool. This means that players registered with different operators could find themselves playing in the same poker game. In this instance settlement of player wagers is more complex than in the centralized topology as situations invariably arise in which funds have to be transferred, (or “cleared”), between different operators whose players are playing on the poker network involving a multitude of operators. The principles underlying a distributed topology are set forth in the above-referenced patent application WO 03/093921 A2. The present inventive methods apply to both the centralized and distributed topologies.

FIG. 1 is a screen shot from an online poker room home or “lobby” page, showing a prior art arrangement for providing real time game information to a potential game player. The player accesses the gaming web site using a personal computer or other computing device with Internet access. As shown in FIG. 1, the lobby is presented on the user interface of the computing device. The lobby presents a display of eight categories or types of card games that are currently available for play via the web site (either under a centralized or a distributed topology). Each game type is associated with a tab:

Tab 1) Hold'em—poker games of the Texas Hold'em variety;

Tab 2) Omaha—poker games of the Omaha variety;

Tab 3) Omaha—poker games of the Omaha Hi/Lo variety;

Tab 4) 7 Stud—poker games of the 7-Card Stud variety;

Tab 5) 5 Stud—poker games of the 5-Card Stud variety;

Tab 6) Private—invitation-only poker games established by players;

Tab 7) Sit & Go—non-scheduled tournaments; and

Tab 8) MTT (Multi-Table Tournaments)—scheduled tournaments.

When any of the first five tabbed categories or types is selected, a player is presented with a list of all tables with poker games of that particular variation that are currently active. See FIG. 1, which shows the tables for the Hold'em game (tab 1). For each active game instance (virtual table) in the list, the following attributes are displayed:

a) name of the table (typically, fanciful names to spark player interest, but may also be in the form of a number or index);

b) table stakes in the format: Small Blind/Big Blind;

c) number of Participating Players/Max number of Players that can be accommodated;

d) whether the table is a no limit table, a pot limit table or a fixed limit table;

e) average size of pots at that table;

f) average number of players who have not yet folded at the flop stage of the game;

g) number of players waiting to join the table; and

h) number of hands played per hour.

Note the scroll feature 10 of FIG. 1. If the person scrolls down using the slide bar 12, additional virtual tables in the Hold-em category are presented. Note that there may be dozens, potentially hundreds, of tables available under this category. The user scrolls down to see all the available tables. This scroll feature is typically found in each of the game categories or tabs of FIG. 1.

Sit & Go Tournaments (Tab 7 of FIG. 1) are poker tournaments that have no pre-set start time and that commence when a prescribed number of players required for the tournament have entered the tournament. Sit-and-Go tournaments can be single-table or multi-table tournaments. When the Sit & Go tabbed category is selected, a player is presented with a list of all Sit & Go tournaments that are either active or are pending. For each Sit & Go tournament in the list, the following attributes are displayed:

a) a tournament identification code;

b) a name of the tournament;

c) a type of poker game played in the tournament;

d) whether the tournament is a no limit, pot limit or fixed limit tournament;

e) number of seats available in the tournament;

f) the current size of blinds for active tournaments, and the number of players already entered for pending tournaments.

MTT (Tab 8 of FIG. 1) are poker tournaments that have a scheduled start time. Players are required to enter the tournament and to be available to commence play in time for the scheduled start of the tournament. When the MTT tabbed category is selected, a player is presented with a list of all MTT tournaments (same instances) that are either active or are pending. See FIG. 2. For each MTT tournament in the list, the following attributes are displayed:

a) a tournament identification code;

b) a name of the tournament;

c) a type of poker game played in the tournament;

d) buy-in rules;

e) number of entrants for the tournament; and

f) a current size of blinds for active tournaments and a scheduled start time for pending tournaments.

If one considers the amount of information displayed in the displays of FIG. 1-2, and the fact that a multitude (hundreds or even thousands) of players and potential players may be simultaneously playing (particularly in a distributed topology where players registered with multiple different web site operators are pooled into one large pool), it is apparent that a substantial burden is placed on a central gaming server coordinating play to keep each player's lobby screen display updated with current information. The information displayed on each player's lobby screen is dynamic since players are continually joining and dropping out of games, and table statistics constantly change. For example, if a table that would appear from FIG. 1 or FIG. 2 to have one or more vacant “seats,” dozens if not hundreds of persons may attempt to join the table within a span of a few minutes, especially in a period of high demand. As a result, vacant seats may be taken up in a matter of seconds. Persons who may think they are going to join a particular table may not be able to do so, as the information in FIG. 1 or FIG. 2 will be inaccurate as it might not yet have updated by a heavily loaded gaming server to indicate that there are no more vacant seats available. Similarly, the statistics on pot size, average payout, number of hands played per hour, etc. will change constantly and players expect this information to be up to date and accurate. However, given the dynamic nature of online gaming playing, such statistics may in fact change continuously. As a result, it is important that the lobby information presented to players accessing and using online gaming software be both current and accurate, and remain so on an ongoing basis. If it is not (for example, a player keeps trying to join a table that indicates a vacant seat, but is unable to do so), the player may get discouraged or frustrated and quit playing or log onto a different site.

To summarize, every player that is logged on to gaming website or a gaming system must be presented with all the data that can be displayed on the lobby page, as described above in FIGS. 1 and 2. The data on the lobby page is obtained from a central gaming server and transmitted to a player's client computing device by means of the Internet. The data is dynamic, since players may enter and leave non-tournament poker games at any time, new poker tables may be spawned by the poker server during periods of high player demand and may be collapsed and consolidated during times of low player demand. Further, tournaments commence and terminate, and numbers of players entered in tournaments change over time. This means that fresh data must be re-transmitted from the gaming server to each computing device periodically. The data is, ideally, real-time (or substantially real-time), giving the player an accurate snapshot of the state of the poker network. Further, it is not uncommon for several thousand players to be connected and playing simultaneously during peak periods.

The net result of this situation is that the gaming server can be swamped by the load placed on it in servicing (i.e., updating) the lobby data tables (e.g., as shown in FIGS. 1 and 2) to the computers of all of the players that are logged in. The result of this overload may cause the responsiveness of the gaming server to degrade, i.e., slow down or even crash. The update frequency of the lobby data on each computer workstation consequently decreases, which results in unfortunate consequences such as, for example, a player wishing to join a poker table or a tournament on the basis of stale lobby data that indicates, say, that a vacant seat exists at that poker table or tournament but which, in reality, has no vacancies as the last remaining seat has already been taken up.

This problem of timely and accurate updating of client computers as to game or tournament information and game statistics, without degradation of gaming server performance, is one of scalability. Moreover, the more players that join the network the more load is placed on the central gaming server to provide updates. As more players join and the overload problem gets worse, the result may be that players stop playing or go elsewhere to play. Thus, this problem presents a bottleneck that seriously limits the ability of the gaming website operators to accommodate more players. The inability to accommodate more players diminishes the potential revenue of the gaming website operators.

The conventional solution to the problem is to utilize more server hardware. However, even this approach leaves something to be desired since it is more expensive to provide more server hardware, and even with more server hardware some degradation in performance may still occur during peak times, particularly as the number of participants in online gaming continues to grow. The art has failed to adequately address this problem.

SUMMARY

The following embodiments and aspects thereof are described and illustrated in conjunction with systems, tools and methods which are meant to be exemplary and illustrative, not limiting in scope. In various embodiments one or more of the above-described problems have been reduced or eliminated, while other embodiments are directed to other improvements. Moreover, the principles of the present invention are applicable both to a centralized gaming topology where all players are registered with a single operator, as well as to a distributed topology as described above.

The present inventor has appreciated that a primary cause of the scalability and load problem of providing real-time game information to a multitude of distributed computing devices from a central gaming server can be traced to the manner in which information is displayed on the distributed computing devices. Having made this insight, the present disclosure provides for new methods of presenting and updating information to players engaged in online gaming which overcomes this problem and allows for new levels of scalability to be achieved, far surpassing the ability of the prior art.

In one aspect, the solution presented by this disclosure is to replace scrollable windows in the game lobby page (as shown in FIGS. 1 and 2 as items 10 and 12), which display relatively large sets of data, with individual pages of data that can be requested individually from the gaming server. It has been discovered that the presentation of lobby data by way of pages, and requiring the distributed computing devices to individually request additional pages, places much less of a burden on a central gaming server both in presenting initial game lobby pages to requesting computing devices as well as providing periodic updates to the displayed game lobby pages for all the currently active computing devices.

For example, a given lobby page may be presented and the user may click on or select the MTT category. The lobby presents a single page listing one subset of the available tournaments, and the data for the subset of tournaments is sized such that it fits into a window pane on the GUI of the computing device, preferably without requiring any scrolling to view the subset of available tournaments data. If the user wishes to view data for additional tournaments, they request an additional page or pages. When an update of their lobby page needs to occur (e.g., after a certain time T elapses, or, alternatively, when any change in the statistics for a table in the page occurs) only the currently displayed page is updated and non-displayed game instances (e.g., other pages of tournaments or other virtual card tables) are not updated since they are not displayed.

As another example, if the user double-clicks on any active MTT tournament in the MTT tabbed category, the user is presented with a second level lobby display for that particular selected tournament. A window lobby screen displays player information that is split into a multitude of pages, each of which can be retrieved by means of a corresponding page icon displayed at the bottom of the window. For example, additional player information can be requested by clicking on the corresponding page icon whereupon a page request is sent to the gaming server and the requested page is sent to the requesting computing device.

The solution to the scalability problem described herein has been successful in that it may allow a poker network in a distributed topology to host tournaments accommodating approximately double the number of players, without substantial degradation in server performance, as compared to in tournaments hosted by gaming servers in systems that use the prior art scrolling approach. This presents a substantial advance and improvement over the prior art.

The present solution is applicable to online games generally, such as SCRABBLE® and is not necessarily limited to card games. The solution is also applicable to lobbies that would display other types of card games besides wager games, such as bridge, and also to other multiplayer games, such as blackjack, punto banco, craps, and the like.

In one specific embodiment of the invention, an apparatus is provided comprising a machine readable medium storing a set of program instructions. The instructions comprise instructions preferably in the form of a client gaming application for displaying a game lobby page on a user interface of a computing device. The game lobby page displays information as to a game type (e.g., hold'em, craps, bridge, 7 card stud, or tournament) available for play over a computer network and, for the game type, information as to individual instances of games of the game type. The individual instances may take the form of individual games, virtual poker tables, or individual game tournaments. The game lobby page includes a page icon wherein information on additional instances of the games not displayed on the lobby page may be requested from a gaming server in the form of an additional page or pages.

In another embodiment, a gaming server is disclosed that provides updated game information to a plurality of distributed computing devices engaging in game playing over a computer network. The gaming server comprises a processing unit and a database coupled to the processing unit storing game information data for a plurality of instances of games. The database is regularly updated to store real-time or near real time information as to the plurality of instances of games. The gaming server provides periodic updates (e.g., every minute, or when table statistics change) to the displays of instances of games (e.g., individual games, virtual card tables, or specific tournaments) to the plurality of distributed computing devices by means of transmitting pages of data. Further, game information for non-displayed instances are not periodically updated at the plurality of distributed computing devices. For example, if a computing device is displaying page 5 of the 40 pages devoted to Hold'em tables, that computing device would only have page 5 updated. It will be understood that the server will ordinarily be updating all of database information for all the tables continuously, but the only updated pages that are sent to the distributed computing devices are those that are currently displayed on the computing devices. Accordingly, the ability of the server to update the plurality of distributed computing devices in real time or substantial real time without substantial degradation in performance of the gaming server is achieved.

In still another aspect, a method is provided of periodically updating displays of game information on a plurality of distributed computing devices connected to a server over a computer network. The method includes the step of presenting game information as to a plurality of instances of games on the display of the plurality of distributed computing device in the form of a page of game information. The method further comprises the step of maintaining state information at the server, including the current page displayed for each of the distributed computing devices. The method further includes the step of the server periodically updating the displayed page on each of the distributed computing devices by transmitting an updated page to each of the distributed computing devices, wherein only the displayed page at the distributed computing devices is updated and wherein game information for other, non-displayed instances of games are not updated. As in the example above, if a computing device is displaying page 5 of the 40 pages devoted to Hold'em tables, that computing device would only have page 5 updated. It will be understood that the server will ordinarily be updating all of database information for all the tables continuously, but the only updated pages that are sent to the distributed computing devices are those that are currently displayed on the computing devices.

In still another aspect, a method is disclosed of providing game lobby pages to a multitude of distributed computing devices connected to a gaming server over a computer network, the game lobby pages displaying information for a plurality of instances of games. The method comprising the steps of receiving a request for a game lobby page from each of the multitude of distributed computing devices, and transmitting a game lobby page from the gaming server to each of the multitude of distributed computing devices, wherein each game lobby page includes an icon providing the user with the ability to request additional pages and wherein information for instances of games not currently displayed on the game lobby page is requested and transmitted to each of the multitude of distributed computing devices as one or more pages.

In addition to the exemplary aspects and embodiments described above, further aspects and embodiments will become apparent by reference to the drawings and by study of the following detailed descriptions.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments are illustrated in referenced figures of the drawings. It is intended that the embodiments and figures disclosed herein are to be considered illustrative rather than restrictive.

FIG. 1 is a prior art lobby page displayed on a workstation by a client application providing for game playing over a computer network, the lobby page including a plurality of tabs corresponding to particular game types and under each tab a display of a plurality of instances of games of the selected game type, wherein scrolling is a tool for display of additional instances of games under the selected game type.

FIG. 2 is a prior art lobby page displayed on a workstation by a client application providing for game playing, wherein in the user has selected the MTT (multi-table tournaments) and a number of instances of tournaments are displayed, again with scrolling being the tool for display of additional instances of the tournaments.

FIG. 3 is a schematic diagram of a system for providing game playing for a plurality of distributed computing devices, in which a central server provides lobby page data to the distributed computing devices using the techniques of this disclosure. While FIG. 3 shows a distributed network topology, the principles of this disclosure are applicable to a centralized topology.

FIGS. 4-6 show representative examples of lobby pages in which game instance information is displayed as a page of information and the user is provided with graphical user interface tools such as “next page”, “first page,” or page number icons to request additional pages. The use of pages as shown in FIGS. 4-6, the feature of the user requesting of additional pages, and the periodic updating of only the displayed page, has been discovered to solve the scalability problems associated with the design of the lobby pages of FIGS. 1 and 2.

FIGS. 7A and 7B are a flow chart showing a process by which a user accesses a gaming web site of FIG. 3 and is provided with lobby data and updated lobby information in accordance with an exemplary embodiment.

DETAILED DESCRIPTION OF PREFERRED AND ALTERNATIVE EMBODIMENTS

Overview

The present inventor has appreciated that a primary cause of the scalability and load problem of providing real-time game information to a multitude of distributed computing devices from a central gaming server can be traced to the manner in which information is transmitted to and displayed on the distributed computing devices. Having made this insight, the present disclosure provides for new methods of presenting and updating information to players accessing an online gaming site which overcomes this problem and allows for new levels of scalability to be achieved, far surpassing the ability of the prior art.

In one aspect, the solution presented by this disclosure is to replace scrollable windows in the game lobby page (as shown in FIGS. 1 and 2), which display relatively large sets of data, with individual pages of data, generally smaller in size, that can be requested individually from the gaming server. Examples are shown in FIGS. 4-6 and will be described in detail subsequently. It has been discovered that the presentation of lobby data by way of pages, and the ability of the computing devices to individually request additional pages, places much less of a burden on a central gaming server, both in terms of presenting initial game lobby pages to requesting computing devices, as well as providing periodic updates to the displayed game lobby pages.

For example, a given lobby page may be presented and the user may click on or select the MTT category. The lobby presents a single page listing one subset of the available tournaments, and data for the subset is sized such that it fits into a window pane on the GUI of the computing device, preferably without requiring any scrolling to view the subset of available tournaments. If the user wishes to view additional tournaments, they request additional pages. When an update of their lobby page needs to occur (e.g., after a certain time T elapses) only the currently displayed page is updated and non-displayed game instances (e.g., other pages of tournaments or other virtual card tables) are not updated on the computing device since they are not displayed. However, as noted above, the server will be continuously updating its database on table statistics and will be able to serve any update page to a computing device that is currently displaying such page.

As another example, if the user double-clicks on any active MTT tournament in the MTT tabbed category, the user is presented with a second lobby display for that particular selected tournament. A window on the right-hand-side of the tournament lobby screen displays a table of player information that is split into a multitude of pages, each of which can be retrieved by means of a corresponding numbered icon (page number icon) displayed at the bottom of the window. Additional player information can be requested by clicking on the corresponding number icon whereupon a page request is sent to the gaming server and the requested page is sent to the requesting computing device.

The solution to the scalability problem described herein has been successful in that it may allow a poker network in a distributed topology to host tournaments accommodating approximately double the number of players, without substantial degradation in server performance, as compared to in tournaments hosted by gaming servers in systems that use the prior art scrolling approach. This presents a substantial advance and improvement over the prior art.

Before describing the preferred embodiments in greater detail, an explanation will be provided first of a computer-based system for online game playing, in which multiple distributed computing devices engage in playing of card games using a central server, and in particular wager games such as poker. The following description is offered by way illustration, and not limitation, of one possible environment in which the invention can be practiced.

Referring to FIG. 3, a system for playing a game of multiplayer poker is indicated generally by reference numeral 20. The system 20 includes a central gaming server 22, and a number of portals (23 a, 23 b) in the form of portal websites on the World Wide Web of the Internet. In this embodiment each one of the portal websites is an online casino website hosted on a corresponding casino web server (not shown). Each one of the online casino websites (23 a, 23 b) is accessible by a would-be poker player (not shown) through a user access facility 24 in the form of computing device such as an Internet-enabled computer workstation having a display 25 and an associated pointing device 25 a, such as a mouse or, alternatively, a touchpad. In this embodiment, the online casino website 23 a is shown as having one computer workstation 24 logically connected thereto, whereas casino website 23 b is shown as being logically connected to two computer workstations 24. It will be appreciated by those skilled in the art that such an online casino websites 23 a, 23 b can be logically connected to any desired number of such computer workstations 24 simultaneously, which number is physically limited primarily by considerations of processing power, website hardware, and Internet access bandwidth.

The gaming server 22 includes a processing unit (such as a central processing unit, not shown) and a database 33 coupled to the processing unit which stores game information data for a plurality of instances of games played by the workstations 24. The database 33 is updated continuously to store real-time or near real time information as to the plurality of instances of games, such as the name of each instance (e.g., table name), the players at each table, the stakes, available seats, waiting time, etc. The gaming server 22 provides the game information data (lobby pages) to the distributed computing devices 24, in the form of pages. The pages include icons or tools by which the users of the devices 24 can request additional pages. Additionally, the server 22 transmits periodic updates to displays of instances of games (e.g., lobby pages) to the plurality of distributed computing devices 24 by means of transmitting pages of updated data. As described in further detail later, game information for instances of a game type that are not currently displayed in the lobby page are not periodically updated, as would be the case with a scrolling solution as shown in FIGS. 1 and 2. Accordingly, the ability of the server 22 to update the plurality of distributed computing devices 24 in real time or substantial real time without substantial degradation in performance of the gaming server 22 is achieved.

The system 20 includes, further, an administration facility 32 in the form of an application server, which is communicable with the gaming server 22 along a communication network 29. Although the operation of the application web server 32 will be outlined briefly in the description that follows, further details are not particularly pertinent to the present discussion and the reader is directed to the published '932 PCT application cited above for further reference.

The gaming server 22, the online casino web servers (not shown) corresponding to the online casino websites 23 a, 23 b, the computer workstations 24 and the application web server 32 are capable of communicating with each other by means of an open communication network that is, in this embodiment, the Internet. The Internet is represented in FIG. 1 as separate logical communication networks (26, 27, 28, 29, 30 and 31).

The application web server 32 provides a clearing account facility 38 (e.g., database) that has a clearing account corresponding to each one of the online casino websites 23 a, 23 b. Analogously, each online casino websites 23 a, 23 b includes a corresponding credit account facility 34 a, 34 b with a credit account corresponding to each player who participates in the game of poker through a computer workstation 24 logically connected to that casino website. In the illustrated embodiment, therefore, the credit account facility 34 a has one player credit account associated with it, while credit account facility 34 b has two associated player credit accounts. The manner of clearing accounts among the operators of the web sites 33 a, 33 b is not particularly important and is described in the aforementioned published '921 PCT application.

The gaming server 22 operates under control of a server-stored program (not shown) capable of enabling a predetermined maximum number, say 8 or 10, of players to play an instance of the game of multiplayer poker. Each instance of the game may take the form of a virtual card table playing a particular game (e.g., Hold'em) or virtual game tournament, such as a virtual poker tournament. When the number of players for a given instance of a game reaches this predetermined maximum number, the server-stored program causes a further instance of the game to be initiated (e.g., a new virtual poker table), the new instance of the game also being capable of accommodating a further 10 players. In this manner the gaming server is capable, under server-stored program control, to spawn as many separate instances of the game of multiplayer poker as required in order to accommodate a pool of players who desire to play the game, in groups of a maximum of 10. Each instance of the game spawned in this manner is treated as totally independent of the other instances.

The online casino websites (23 a, 23 b) enable a player who desires to join the game of multiplayer poker to request, by means of one of the computing devices 24, participation in the game and, once admitted to an instance of the game, to place a wager on a turn of that instance of the game. During the play, each participating player is presented with an identical graphical user interface (GUI) on his respective computing device 24 by a separate, locally stored, program in the computing device. The GUI presents to the player a suitable display of a poker game (not shown) with appropriate activatable icons that enable the player to make his own desired game play decisions and to monitor the progress of the multiplayer game by viewing the game play decisions of the other participating players in the same instance of the game.

The server-stored program also provides a wagering means 37 in the form of computer instructions operable by any participating player to place a wager on a turn of the game, as well as a discrimination means in the form of computer instructions 35 capable of determining whether any wager placed by anyone of the participating players on the turn of the instance of the game of multiplayer poker is successful or unsuccessful. The stored program in the gaming server 22 also maintains a dynamic register 36 of all players admitted to, and actively participating in, all the spawned instances of the poker game from time to time, together with data representative of a corresponding portal (23 a, 23 b) through which each participating player accessed the game. The dynamic register 36 also contains data representative of an instance of the game in which the player is participating. The application web server 32 also settles the wagers of the participating players after the completion of every turn of any instance of the game.

As a part of this dynamic register 36, or using a separate mechanism such as a state engine or state machine, the gaming server 22 preferably keeps track of the current screen display of each computing device 24. Consequently, when a lobby page is displayed on a computing device 24, the gaming server 22 knows what update needs to occur (i.e., which is the current page displayed on each computing device and therefore which updated page to transmit to the client process for display). Such updated pages are constructed by reference to the stored game instance data in the database 33.

The computing devices 24 may take the form of a conventional personal computer operating under a Windows, Linux, or Macintosh operating system, provisioned with a web browser and a connection to the Internet. The computing devices 24 may also take the form of portable, hand-held computing devices with a web browser and wireless internet access. The gaming server 22 may also operate under a Windows NT or other conventional operating system.

A game of multiplayer poker using a computing device or workstation 24 is facilitated by means of workstation-stored program (not shown) referred to, for convenience, as a client process that is executable on a computer workstation 24, and a corresponding server-stored program (not shown), or server process, that is executable on the gaming server 22. The server process (not shown) generates one or more random events that affect the outcome of the game of poker, such as the dealing of cards to participating players. The client process (not shown) obtains the result of the random events from the gaming server 22, across the communication network 28 and displays the outcome of the game on the display monitor 25 in an intelligible manner.

In order to play multiplayer poker or other games from any computer workstation 24, the client process (not shown) must first be downloaded, e.g., from the gaming server 22 (or from the web site 23 a or 23 b) to that computer workstation. Such download will typically occur when the computing device 24 first accesses the home page of the web site 23 a and 23 b, and the user is presented with a message asking the user whether they wish to download the client process in order to play the games. The user selects a “yes” icon and the download then proceeds. The client process is then launched and communication between the computing device 24 and the gaming server 22 then proceeds. In a distributed topology scenario, a player wishing to participate in the multiplayer games such as poker uses a computing device 24 to access an online casino website 23 a, 23 b) of his choice, but regardless of their choice of website the user is presented with the same underlying client process. The client processes will typically have different trademarks, color schemes, or “look and feel” depending on which online casino website they downloaded the client process from.

Referring now to FIG. 4, a first example of a new, inventive lobby page 40 is shown. The lobby page provides information as to a variety of game types which are shown in the window or pane 50. The game types in this example are wager type card games, including Hold'em, Omaha, Omaha Hi/Lo, 7 Card Stud, 5 Card Stud, Sit and Go poker tournaments, Multitable poker tournaments and feature tournaments such as Caribbean Poker Classic. The user selects one of the game types that they are interested in and the window 52 displays information on individual instances of games in the selected game type. The instances in window 52 in this example are individual virtual poker tables. The window shows statistics or data for each instance, such as the name of the table, the stakes, the number of available seats and the number of players currently at the table, the limit, average pot, etc. In the example of FIG. 4, the tables are empty (no players) but ordinarily such tables would have 2 or more players. The data in the window 52 essentially is in the form of a page of data, wherein the amount of data to show in the window 52 is such that it fits in the available space in the window 52 and scrolling is not necessary. The window 52 includes page icons 54 by which the user can select an additional page, go back a page, go forward a page, request the first page, request the last page, etc.

When the computing device 24 accesses the server 22, it is provided with the main lobby page shown in FIG. 4. This page will be referred to as page N, one of the 50 available pages under this game type. The display may get updated, for example if one of the virtual tables shown in joined by two or more players and play commences. The server 22 would then just update the displayed page N and would not update any of the other 49 available pages under this game type. One way this could be done is if the state machine in the gaming server 22 starts a timer when the page N is initially sent to the requesting computing device 24 and when a certain time T has elapsed, a new page N is sent. Server 22 tracks statistics on all the games in process and generates new pages 1-50 continually and stores them in the database 33. Such pages may be considered “master” pages. Another way this could be done is any time a change is made to any “master” lobby page in the database 33, all currently connected workstations that have a state in which they are observing a lobby page (such as page N shown in FIG. 4) are automatically sent the updated lobby page.

Window 56 in FIG. 4 shows the currently active players in a selected game instance (virtual table). Note that since there are a maximum of ten players per table and all player names can fit in window 56, there is no need to display additional page icons to request additional player names in this example.

FIG. 5 shows another example of a new, inventive lobby page. The lobby page 40 includes a plurality of tabs 60 in a window 62 with teach tab having a legend showing a type of game available for play. The user has selected the Hold'em tab on the left. A request is sent to the server for the first page of data on instances of the Hold'em game and the results are shown in FIG. 5. There are 15 instances of Hold'em that are included in the page, and statistics as shown for each instance, such as name, stakes, number of players, limit, average pot size, etc. If the user wishes to see additional tables, they select a page icon in the displayed page icons 54, such as PREV, NEXT, or a specific page number. In response to such a selection, the gaming server will send the selected page to the requesting computing device and it will be displayed. The updating of the page shown in FIG. 5 on the computing device display is as described previously. Note that data on non-displayed instances of the Hold'em game, such as for example the instances to be found in page 23 or page 39 (not currently displayed) would not be updated on the computing device since those pages are not currently displayed. This manner of displaying game lobby pages overcomes the scalability problems found with the design of FIGS. 1 and 2 with scrolling provided to see all the available virtual tables.

FIG. 6 shows another example of a new, inventive lobby page. The user has navigated to a Multi-table tournament tab in FIG. 5 and selected one of the tournaments for display of additional information on the selected tournament. The display of FIG. 6 includes a window 72 wherein a page of player data is displayed. The window 72 is the place where the user can view information on all of the players in the tournament. Preferably, the amount of player data in each page is chosen such that it fits into the size of the window 72 so as to avoid the need for scrolling. If the user wishes to see data on additional players, they select an additional page using one of the page icons 54.

Note further that the update concepts for FIGS. 4 and 5 (updating only the displayed page) can be applied to FIG. 6 in that only the player data in the displayed page in window 72 is updated. No updates occur for non-displayed pages since they are not displayed in the first place. The attendant advantages of scalability and reduced processing burden on the central server 22 are obtained in this embodiment as well.

Note further that a given lobby page may present some information using scrolling, such as the data in window 74, but this information (e.g., prize information) is static, not dynamic, and hence the need for current, up-to-the minute information is not acute. As another example, the window 50 of FIG. 4 could use a scroll tool in order to display all the available game types, but again this information is static, not dynamic, and hence the use of scrolling for such static information is not a problem for scalability.

FIGS. 7A and 7B are a flow chart showing a process by which a user accesses a gaming web site 23 a or 23 b of FIG. 3 and is provided with lobby data in accordance with an exemplary embodiment. FIGS. 7A and 7B should be considered in conjunction with FIG. 3 and the screen shots of FIGS. 4-6.

At step 100, the user accesses a web site 23 a offering online gaming with their computer 24. When they access the site for the first time, they are presented with an icon by which they can choose to download a client application to play games and they click a “yes” or “download” icon. The client application is downloaded from the server 22 and installed on the user's computer. Thereafter, at step 102, the application is launched. Every time the client application is run, the server at step 104 sends a lobby page such as shown in FIG. 5. The client application is configurable to request, at start-up, a default lobby page from the gaming server. For example, the application could be configured to display a preferred category of games, such as Hold'em games, and the default lobby page would be page 1 of the Hold'em pages. Also at step 104, the server starts a state engine for the computer whereby the state of the display of the computer can be continuously tracked. Another mechanism for monitoring computer state could be used.

At step 106 the user makes a selection of a type of game for which they wish to view the current table data, which may be different from the preferred (i.e., default) category of games described above. For example, they may select one of the game types as shown in window 50 in FIG. 4.

At step 108, the selection made at step 106 is sent to the gaming server 22 and the gaming server responsively sends to the computing device 24 the lobby page with the data for first page of game instance information, as shown for exampled in FIG. 4 or 5. The lobby page is then presented on the workstation GUI.

At step 110, the user may then request a different page, such as the second of many pages of virtual card tables for the selected game type, by activating a NEXT page icon or taking similar action with the page icons 54. At step 112, the requested page is sent from the server 22. As indicated at 113, the user may select additional pages and such additional pages are sent by the server 22.

At step 114, the gaming server checks a timer to see if the elapsed time for a display of a lobby page is greater than a threshold time T. T may be one minute or any other desired time period, and may be dynamically determined based on activity on the poker network. The purpose of the timer check is to see if the screen display of the current selected page needs to be updated with new table information. (Alternatively, instead of using a timer, the server can check to see if any updates have been made to the “master” lobby page stored in the database or in the underlying data for the tables in the page). If the amount of elapsed time is less that T (or no changes have occurred), the server waits (116) and no update occurs. If the elapsed time is greater than T (or a change has occurred), the server sends an updated page to the computer device 24 (step 118). Such updated page may be generated internally by a separate instruction set or application executed by the server 22 devoted to generating updated lobby pages. Such updated page (and other pages) are preferably generated continuously by the server 22 or by a separate server or computing platform, and stored in the database 33 of FIG. 3 as “master” pages.

Suppose the user has navigated to lobby page such as shown in FIGS. 4 or 5 and wishes to view specific information on a selected table or tournament. At step 120, they may double click on one of the rows in the display page of FIG. 4 or 5. The server receives this request and responsively may send a new page with more information on the selected table. For example, the user may select the MTT category of games and then select a particular tournament displayed on the initial lobby page, whereupon the data for the display of FIG. 6 is sent to the workstation. This display is considered a second level of a lobby display, showing detailed information on the selected tournament and also the display of a page of player data in the window 72. At step 124, the player may select an additional page of player data by using the page icons 54 in FIG. 6. At step 126, the server sends the new page of player data. Preferably, there is no scrolling and each page of data contains just the right amount of data to fit into the size of the window 72. As indicated at 126, the user may request additional pages.

As indicated at steps 130, 132 and 134, an updated process can be performed when the workstation displays the second level of lobby page such as shown in FIG. 6. The server 22 monitors the amount of time that has elapsed since the last page was sent to the workstation, and if the elapsed time is greater than a threshold T, an updated page is sent to the workstation. The value of the threshold T need not be the same as the threshold T for updating the main lobby page of FIG. 4 or 5. Again, in an alternative embodiment, the updating of the display in the second level could be initiated by the occurrence of new data in the displayed page, and not necessarily by the passing of a predetermined time period T. At step 136, the processing continues, e.g., by selection of new pages, navigation back to the main lobby page, or the user joining a virtual card table.

It will be apparent to persons skilled in the art that the client application and method of FIGS. 4-5 can be applied to games generally; the present example is particularly suitable when the type of game is a card game such as wager games and wherein the individual instances of games comprises a virtual card table (such as the seventeen virtual card tables shown in FIG. 4 or the fifteen virtual card tables shown in FIG. 5). However, the individual instances could as well be individual instances of a tournament, e.g., poker tournaments, as would be the case if the user were to select the Multi-table tournament tab in FIG. 5 or select Multi-table tournaments in window 50 of FIG. 4.

Thus, from the foregoing, it will be appreciated that one specific embodiment of the invention takes the form of an apparatus in the form of machine readable medium (e.g., hard disk memory) storing a set of program instructions. The instructions comprises instructions preferably in the form of a client gaming application for displaying a game lobby page (examples shown in FIGS. 4-7) on a user interface 25 of a computing device 24. The game lobby page displays information as to a game type (e.g., Hold'em, craps, bridge, 7 card stud, or tournament), such as shown in FIG. 4 or 5, available for play over a computer network and, for the game type, information as to individual instances of games of the game type. For example, in FIG. 4 a user has selected a 5 card stud icon in field 40 and individual tables are shown in window 52. The individual instances may take the form of individual games, virtual poker tables, or individual game tournaments. The main game lobby page (FIG. 4 or 5) includes a page icon (see examples of page icons 54 in FIGS. 4 and 5) wherein information on additional instances of the games not displayed on the lobby page may be requested from a gaming server in the form of an additional page or pages. For example, if the user were to select the “NEXT” icon in the set of icons 54 in FIG. 5, another set of 15 virtual card tables under the Hold'em tab will be requested from the gaming server 22 and the server will responsively send data for the next 15 virtual card tables.

As noted previously, the machine readable instructions are stored on the general purpose computing device 24 and the instructions are preferably downloaded from the server 22 to the computer 24 over the Internet (28 in FIG. 1).

Preferably when a game lobby page such as shown in FIGS. 4-6 is displayed on the computing device, the page is periodically updated. The updating can be on a fixed period or it can be when there is any change in the underlying data, or both. Since the gaming server 22 includes a state machine or other mechanism for keeping track of the current lobby page displayed on each workstation, the server can customize the updating for each workstation by transmission of an updated page from the gaming server to each computing device displaying a lobby page. (For those computers actually engaged in gaming activity, they may not have a lobby page also displayed and so for them no updating need occur). As noted previously, because the lobby display is of a discrete page, with each page being sized so that it can be fully displayed in the available window (as shown in FIGS. 4 and 5), there is no need or occasion to update data for instances of games that are not currently displayed. Accordingly, when the server sends the update page to the distributed computing devices displaying lobby pages, there is no updating of game information for non-displayed instances of games as there would be if scrolling were done as in FIGS. 1 and 2 in order to view all the instances of the selected game type. As a result, the processing burden on a central server continuously updating hundred or thousands of computers all at the same time is substantially reduced, enabling improved server and poker network performance to surpass the capability of the prior art. As a further benefit, the individual gaming web site operators can host more players.

In another embodiment, a gaming server 22 is disclosed that provides updated game information to a plurality of distributed computing devices 24 engaging in game playing over a computer network (e.g., Internet 28). The gaming server 22 includes a processing unit (not shown) and a database 33 coupled to the processing unit storing game information data for a plurality of instances of games. The database 33 is regularly updated to store real-time or near real time information as to the plurality of instances of games. The gaming server provides periodic updates (e.g., every minute) to the displays of instances of games (e.g., individual games, virtual card tables, or specific tournaments) to the plurality of distributed computing devices 24 by means of transmitting pages of data, such as shown in the window 52 of FIG. 4 or the window 62 of FIG. 5 or the window 72 of FIG. 6. Further, game data or information for non-displayed instances of a game are not periodically updated. For example, in FIG. 5 only the fifteen tables (game instances) shown in window 62 would be updated on this particular computing device (and other computing devices displaying the same page at the same time) and none of the other 39 pages of tables would be updated on that computing device. Likewise, in FIG. 6, if there were any updates to the list of players forming the page in window 72, only that page would be updated at the workstation and none of the other 13 pages of players in the tournament would be updated (since they are not displayed). Accordingly, the ability of the server to update the plurality of distributed computing devices in real time or substantial real time without substantial degradation in performance of the gaming server is achieved.

As noted above, when the player wishes to review additional pages, they select a page using a page icon 54 and the server 22 receives a page request for information as to additional instances of games (as in FIGS. 4 and 5), or additional players in a tournament as in FIG. 6. The requested page is transmitted to a requesting computing device over the Internet. The transmission of data to the computers as discrete pages, with a limited amount of data per page (such as 15 or 17 virtual card tables in FIGS. 4 and 5 or 20 players in the page of players in FIG. 6) translates into less processing burden on the server 22.

In a preferred embodiment, the database 33 stores game information in the form of statistics for each the wager games, and in the examples of FIGS. 4 and 5 the page that is displayed shows the statistics for a plurality of virtual card tables playing the wager games such as table name, limit, seats available, average pot size, or other statistics that may be pertinent to the game in question. The updating of the database 33 may be performed by the server 22 or by an ancillary computer. Such game information may be organized logically (or capable of being organized logically) as “master” lobby display pages. Such “master” lobby pages are continuously updated in the database 33. Particular pages corresponding to the displayed pages are fetched from the database 33 and sent to the distributed workstations by reference to the state engine indicating which page is currently displayed on each workstation, as explained herein.

From the foregoing description, it will also be appreciated that a method is disclosed for periodically updating displays of game information on a plurality of distributed computing devices 24 connected to a server 22 over a computer network 28. The method includes the step of presenting game information as to a plurality of instances of games on the display of the plurality of distributed computing device in the form of a page of game information, e.g., as in FIGS. 4 and 5. The method further comprises the step of maintaining state information at the server 22, including the current page displayed for each of the distributed computing devices 24. The method further includes the step of the server periodically updating the displayed page on each of the distributed computing devices by transmitting an updated page to each of the distributed computing devices, wherein only the displayed page at the distributed computing devices is updated and wherein game information for other, non-displayed instances of games (i.e., games instances not in the current page) are not updated at the workstation.

It will be further appreciated that in still another aspect, a method is disclosed of providing game lobby pages (as shown in FIGS. 4-7) to a multitude of distributed computing devices 24 connected to a server 22 over a computer network 28. The game lobby page displays information for a plurality of instances of games. The method includes a step of receiving a request for a game lobby page from each of the multitude of distributed computing devices 24. Such request may occur for example when the workstation launches the client application described herein or navigates back to a lobby page after playing a game. The server then transmits a game lobby page (FIG. 4, 5 or 6) from the gaming server to each of the requesting multitude of distributed computing devices 24. Each game lobby page includes an icon 54 providing the user with the ability to request additional pages. Information for instances of games not displayed on the game lobby page is requested and transmitted to each of the multitude of distributed computing devices as one or more pages.

While presently preferred embodiments have been described in some detail, persons skilled in the art will appreciate that variation can be made from the specifics of the disclosed embodiments without departure from the scope of the invention. For example, the detailed processing shown in FIG. 7 is offered by way of example and not limitation as to a particular processing sequence and communication flow between the client workstation 24 and the gaming server 22. Other processing steps or message flow sequences can occur. While a number of exemplary aspects and embodiments have been discussed above, those of skill in the art will recognize certain modifications, permutations, additions and sub-combinations thereof. It is therefore intended that the following appended claims and claims hereafter introduced are interpreted to include all such modifications, permutations, additions and sub-combinations as are within their true spirit and scope. 

1. Apparatus comprising: a machine readable medium storing a set of program instructions, said instructions comprising instructions for displaying a game lobby page on a user interface of a computing device, wherein the game lobby page displays information as to a game type available for play over a computer network and, for the game type, information as to individual instances of games of said game type or players playing in games of the game type, and wherein the game lobby page includes a page icon wherein information on additional instances of said games or players playing in games of the game type not included on the lobby page may be requested from a gaming server in the form of an additional page or pages.
 2. The apparatus of claim 1, wherein the game type comprises a card game and wherein the individual instances of games comprises a virtual card table.
 3. The apparatus of claim 1, wherein the game type comprises a card game and wherein the individual instances of games comprises a tournament of said card game.
 4. The apparatus of claim 3, wherein said card game comprises a wager game.
 5. The apparatus of claim 1, wherein the machine readable instructions are stored on a general purpose computer and wherein the instructions are downloaded from a server to the computer over the Internet.
 6. The apparatus of claim 1, wherein when a game lobby page is displayed on the computing device, the page is periodically updated by transmission of an updated page from the gaming server, and wherein game information for non-displayed instances of games not included in the game lobby page are not periodically updated.
 7. A gaming server providing updated game information to a plurality of distributed computing devices engaging in game playing over a computer network, comprising: a processing unit; a database coupled to the processing unit storing game information data for a plurality of instances of games, wherein the database is updated to store real-time or near real time information as to the plurality of instances of games, and wherein the gaming server provides periodic updates to displays of instances of games to the plurality of distributed computing devices by means of transmitting pages of said data, and wherein game information for instances of a game type not included in the pages of data are not periodically updated at the computing devices, thereby improving the ability of said server to update the plurality of distributed computing devices in real time or substantial real time without substantial degradation in performance of the gaming server.
 8. The gaming server of claim 7, wherein the games comprise card games and wherein the instances of said card games each comprises a virtual card table.
 9. The gaming server of claim 7, wherein the games comprise card games and wherein the instances of said card games each comprises a tournament of said card game.
 10. The gaming server of claim 7, wherein the database stores a list of players currently playing games and wherein the gaming server provides periodic updates to displays of players playing games to the plurality of distributed computing devices by means of transmitting pages of said data, and wherein pages containing player information that are not currently displayed on the distributed computing devices are not periodically updated at the computing devices.
 11. The gaming server of claim 7, wherein the server receives a page request for information as to additional instances of games, and wherein the requested page is transmitted to a requesting computing device over the Internet.
 12. The gaming server of claim 7, wherein the database stores game information for a plurality of wager games, the game information for each of the wager games comprising statistics for a plurality of virtual card tables playing said wager games, and wherein the display includes a display of the statistics.
 13. The gaming server of claim 7, wherein: the gaming server stores state information for each of the distributed computing devices, the state information including a current display on the distributed computing devices; and wherein in the event that a distributed computing device is currently displaying a game lobby page to a user of the distributed computing device the gaming server periodically transmits an updated lobby page corresponding to the displayed lobby page to the distributed computing device but does not transmit updated information for instances of games not included in the game lobby page.
 14. A method of periodically updating displays of game information on a plurality of distributed computing devices connected to a server over a computer network, comprising the steps of: presenting game information as to a plurality of instances of games on the display of the plurality of distributed computing devices in the form of a page of game information; maintaining state information at the server, including the current page displayed for each of the distributed computing devices; and the server periodically updating the displayed page on each of the distributed computing devices by transmitting an updated page to each of the distributed computing devices, wherein only the displayed page at the distributed computing devices is updated and wherein game information for other instances of games not included in the page of game information are not updated at the computing devices.
 15. The method of claim 14, wherein the game information is presented as a lobby page, wherein the lobby page displays a plurality of game types and a plurality of instances of games of at least one of the game types, and wherein the display of the plurality of instances of games includes an icon providing a user to request transmission of an additional page of game information for additional instances of the game.
 16. The method of claim 14, wherein the games comprise card games, wherein the plurality of instances of games comprise a plurality of virtual card tables.
 17. The method of claim 14, wherein the games comprise card games and wherein the instances of said card games each comprises a tournament of said card game.
 18. The method of claim 16, wherein the game types include at least one poker game, and wherein the plurality of instances of the poker game comprise virtual poker tables.
 19. The method of claim 16, wherein the games are selected from the group consisting of poker, blackjack, punto banco, craps, and bridge.
 20. A method of providing game lobby pages to a multitude of distributed computing devices connected to a server over a computer network, the game lobby page displaying information for a plurality of instances of games, comprising the steps of: receiving a request for a game lobby page from each of the multitude of distributed computing devices; and transmitting a game lobby page from the gaming server to each of the multitude of distributed computing devices, wherein each game lobby page includes an icon providing the user with the ability to request additional pages and wherein information, if requested, for instances of games not displayed on the game lobby page is requested and transmitted to each of the multitude of distributed computing devices as one or more pages.
 21. The method of claim 20, wherein the server maintains state information, including the current page displayed for each of the multitude of distributed computing devices; and wherein the server periodically updates the displayed page on each of the distributed computing devices by transmitting an updated page to each of the distributed computing devices, wherein only the displayed page at the distributed computing devices is updated and wherein game information for other, non-displayed instances of games are not updated at the computing devices.
 22. The method of claim 20, wherein the game lobby page displays a plurality of game types and wherein a selection of a game type presents a display of a plurality of instances of the game type in the form of a page of game information for the plurality of instances and a page icon wherein additional instances of the game type may be requested.
 23. The method of claim 20, wherein the game lobby page displays information for a plurality of virtual card tables.
 24. The method of claim 20, wherein the game lobby page displays information for a plurality of tournaments.
 25. The method of claim 20, wherein the game lobby page displays a page of players currently playing games and a page icon whereby additional pages of players may be requested for transmission.
 26. The gaming server of claim 7, wherein the server communicates with the distributed computing devices in a distributed network gaming topology.
 27. The gaming server of claim 7, wherein the server communicates with the distributed computing devices in a centralized network gaming topology. 